#
# test FundamentalSolutions submodule
#
using ApproxFun, SingularIntegralEquations, Base.Test

x = collect(-10:0.5:10)
y = collect(-9.75:0.5:10.25)
E = collect(-10:10.0:10)

# These values were computed using the C-library of Barnett, Nelson, and Mahoney.

Φ = [(Complex{Float64}[0.0 + 0.0im,0.0 + 0.0im,0.0 + 0.0im,0.0 + 0.0im,0.0 + 0.0im,0.0 + 0.0im,0.0 + 0.0im,-2.7177786073940434e-15 + 7.088144176763204e-17im,1.915032314214556e-15 + 1.062472191604418e-15im,8.348561393138206e-14 - 2.0725829383749506e-15im,1.2906220044659275e-12 + 1.1233425015281e-15im,2.004352396756511e-11 + 4.050862755550819e-17im,2.99641288632409e-10 - 5.107640496654681e-15im,4.313365405406057e-9 - 1.6586670631087627e-18im,5.987650506478715e-8 + 2.678087274943622e-15im,8.036491088527181e-7 - 4.1566770191093646e-20im,1.0481911109243105e-5 - 1.3887627004584244e-15im,0.000134221034800493 + 3.479717996635153e-19im,0.0017274882801318313 - 1.6239902604124774e-18im,0.023860414153611623 - 1.1997678739439142e-18im,0.09199129960693156 + 7.044571562116214e-18im,0.007009655477148429 - 5.361158534508201e-19im,0.000656801067989086 + 1.41968589313552e-19im,7.097449259287094e-5 + 8.034735626738917e-19im,8.52124827834661e-6 + 1.39243737663054e-18im,1.1212652664570484e-6 + 1.1780007703932245e-17im,1.6088397622748281e-7 + 4.024624122391895e-17im,2.5146349735561583e-8 + 1.2738766636439244e-16im,4.287690609422299e-9 + 3.7525072451203737e-16im,8.002532610106711e-10 + 1.0189815858427598e-15im,1.6436828335746545e-10 + 2.5490151050909247e-15im,3.745131741348526e-11 + 5.826972594305736e-15im,9.583230364482935e-12 + 1.2106172621587705e-14im,2.808387401836333e-12 + 2.267473868228771e-14im,9.6822670788384e-13 + 3.790445542445573e-14im,3.9785460274139317e-13 + 5.57652511966692e-14im,1.841347268213127e-13 + 7.079656408295009e-14im,7.947869393575377e-14 + 7.51983684006048e-14im,1.6655950429201335e-14 + 6.31820949902256e-14im,-1.7603978963813583e-14 + 3.6705040150194534e-14im,-2.494775976802604e-14 + 7.321968406482739e-15im],Complex{Float64}[0.0 + 0.0im,0.0 + 0.0im,0.0 + 0.0im,0.0 + 0.0im,0.0 + 0.0im,0.0 + 0.0im,0.0 + 0.0im,4.058651603261031e-15 - 3.3115802072659474e-15im,-1.0204890401494459e-14 - 3.535604706904387e-15im,-2.0786904538586839e-13 + 4.453290687265494e-15im,-3.321378591264416e-12 - 4.479990671239373e-16im,-5.1417816151645136e-11 - 6.706175264740401e-17im,-7.669645098189046e-10 + 5.2622262439675785e-15im,-1.1033685491708622e-8 - 1.0497429531081222e-18im,-1.534482428409001e-7 - 7.474079515942788e-16im,-2.071950099402365e-6 + 8.578315985755632e-21im,-2.7392371905744022e-5 + 4.132840353574865e-16im,-0.0003610526514322561 - 8.767505001275645e-18im,-0.00497231308538903 + 7.721186803585204e-19im,-0.08514735493339759 - 1.515102199623331e-19im,0.0 + 0.0im,0.014064943892512593 + 2.606364950488978e-19im,0.0013769451909061016 + 2.4849783614898278e-20im,0.00014881197291795472 + 9.442328091684242e-20im,1.7697298954357147e-5 - 3.646614467754496e-18im,2.2972789015955277e-6 + 2.4623781602501203e-18im,3.2433230865361906e-7 + 1.1930262393096905e-17im,4.9769709355538425e-8 + 3.86984448505805e-17im,8.312880619793969e-9 + 1.322097402883273e-16im,1.5159473879140603e-9 + 4.0832136128495536e-16im,3.032683645624505e-10 + 1.171027295598021e-15im,6.70133397896639e-11 + 3.0164105919380474e-15im,1.6522756878836112e-11 + 7.022614976997634e-15im,4.6183165779036835e-12 + 1.468111037963438e-14im,1.4997920455131623e-12 + 2.7371179592677948e-14im,5.806163359979423e-13 + 4.4947462285522736e-14im,2.6413095263062726e-13 + 6.399048791805897e-14im,1.25284448006157e-13 + 7.706564900367722e-14im,4.466872610961881e-14 + 7.53109640844585e-14im,-5.9475507194407915e-15 + 5.472101684004291e-14im,-2.783133412396072e-14 + 2.232963705453047e-14im],Complex{Float64}[0.0 + 0.0im,0.0 + 0.0im,0.0 + 0.0im,0.0 + 0.0im,0.0 + 0.0im,0.0 + 0.0im,0.0 + 0.0im,1.9202327473178666e-15 - 4.516794137340351e-15im,-1.0108563008573199e-14 - 4.43560261250676e-15im,-1.4930320520609354e-13 + 5.272099526023163e-15im,-2.5025455733347145e-12 + 1.1198934143539465e-15im,-3.935066826540064e-11 - 1.3333894014595015e-16im,-5.955985816601308e-10 + 6.0000339465122565e-15im,-8.677587171352468e-9 - 9.709198850408539e-18im,-1.2183935729024614e-7 + 2.371004385869295e-15im,-1.6523402690568737e-6 - 6.044302273255796e-20im,-2.1731701644251383e-5 - 4.6108614993603776e-17im,-0.00027920267779759506 - 7.340832077953816e-18im,-0.003541616266213967 - 1.409174634311243e-18im,-0.04125833513327128 + 5.027709985393252e-18im,0.445865880291157 + 2.5880367303763978e-17im,0.02169213202596337 - 5.556239971139944e-19im,0.0018156335452467099 + 6.633197947751877e-19im,0.00018815356766272066 + 2.5737836302712535e-18im,2.2193878188067997e-5 + 4.4632499309702165e-17im,2.9012378056546723e-6 + 3.761693814194309e-17im,4.160743340280872e-7 + 1.300219364398536e-16im,6.524461703332531e-8 + 4.0505404735836866e-16im,1.1189600646082624e-8 + 1.1938557058714125e-15im,2.104611664842445e-9 + 3.2343148006130445e-15im,4.3632530352087725e-10 + 8.074687438094622e-15im,1.0050167783571491e-10 + 1.8415960870073928e-14im,2.6043197623182808e-11 + 3.8139528966007313e-14im,7.746441972238439e-12 + 7.115672238749773e-14im,2.71696868073637e-12 + 1.1838471244276802e-13im,1.1348960689021464e-12 + 1.7312220159377177e-13im,5.293033772809371e-13 + 2.1806184108338944e-13im,2.2508141971530844e-13 + 2.29095305283336e-13im,4.0180539600264057e-14 + 1.8921489422173267e-13im,-5.884240745550609e-14 + 1.0611079589828134e-13im,-7.612611029342802e-14 + 1.6778751961906487e-14im]);
     (Complex{Float64}[-4.2207742054609445e-14 + 2.5582099967016215e-14im,-3.0640864285993137e-13 + 2.5582120932105505e-13im,-2.0381096673341605e-12 + 2.2873123165164373e-12im,-1.2291262971952923e-11 + 1.859168887769827e-11im,-6.593469034490949e-11 + 1.385823619623002e-10im,-3.0249880612095654e-10 + 9.518445208552073e-10im,-1.0682751675260649e-9 + 6.03929577130901e-9im,-1.639612588945498e-9 + 3.543551586947374e-8im,1.5177439798448966e-8 + 1.9228966824880425e-7im,1.9538821451619523e-7 + 9.64344580406234e-7im,1.4651459010156878e-6 + 4.463484556294712e-6im,8.740421991126924e-6 + 1.9029111396794245e-5im,4.469428878355194e-5 + 7.452957964701884e-5im,0.00020156564053186403 + 0.00026728008545472056im,0.0008121563495976686 + 0.0008740618464729511im,0.002942033678125101 + 0.002593159678899259im,0.009615189026887246 + 0.0069347922948135065im,0.028462894387744752 + 0.016579814378646977im,0.07718687796772232 + 0.035055532644951364im,0.20138079548989188 + 0.0645772090888822im,0.34449771280311725 + 0.10139785495345906im,0.14052000757498556 + 0.13097106387740856im,0.02416066593685897 + 0.1300068557958706im,-0.05658235113805852 + 0.08266935708982236im,-0.07931085671583328 + 0.00462601860978848im,-0.03663533617594418 - 0.05321036831038424im,0.026760299092560575 - 0.046114440363527194im,0.04370336518387192 + 0.007858483754800048im,0.003070419610705451 + 0.03706378262151246im,-0.030193447002630103 + 0.00807798138843038im,-0.009344484325229154 - 0.02460244627777213im,0.020502139451006922 - 0.008458004805011528im,0.006403003997704943 + 0.017561065479597644im,-0.015291241578608568 + 0.003758477628861037im,-0.0009006814895022193 - 0.013222608261887687im,0.010986335856433216 + 0.0018526653198289058im,-0.0041698682550289495 + 0.008371569174473147im,-0.005374203921470931 - 0.005705566107920749im,0.006168626185334842 - 0.0022233665542553426im,-0.0006469760319096293 + 0.00543662347493285im,-0.00366973959806075 - 0.0027106956531463824im],Complex{Float64}[4.1501911810981205e-14 - 5.486825532069073e-14im,2.598015692762275e-13 - 4.781987909335566e-13im,1.4047271789562447e-12 - 3.83242748715863e-12im,6.00534428544889e-12 - 2.8360162116211566e-11im,1.3563725949235504e-11 - 1.9419039405781347e-10im,-8.06580310046677e-11 - 1.2313465437952206e-9im,-1.4406602374465107e-9 - 7.229463827730596e-9im,-1.3189939420484509e-8 - 3.926581726828507e-8im,-9.45379851033821e-8 - 1.96979117233407e-7im,-5.796509661138316e-7 - 9.106358457976207e-7im,-3.1419226543336096e-6 - 3.8680581450532525e-6im,-1.5282310255001012e-5 - 1.503818516968255e-5im,-6.719529848171383e-5 - 5.324851620953596e-5im,-0.0002680454396954023 - 0.00017062325723433142im,-0.0009717798716489432 - 0.0004905135740319524im,-0.0032067896279610445 - 0.0012499929398858088im,-0.009668292882845425 - 0.0027728301899642743im,-0.026977367524609042 - 0.005193188288550748im,-0.07308799203104946 - 0.0077188747645003065im,-0.24216642239493244 - 0.00759564827245433im,0.0 + 0.0im,0.10482641731156107 + 0.018876882010997017im,0.06322656141965662 + 0.04490914283998468im,0.01797329476820751 + 0.06112064534364743im,-0.028891627647689933 + 0.046628824932477365im,-0.048075504374452245 + 0.0017685884582004105im,-0.020787097889397758 - 0.03706195723683278im,0.02389309422704863 - 0.029050563777788568im,0.030524348608791513 + 0.013269799039853643im,-0.006349334744224723 + 0.028710735611595234im,-0.025772539794501236 - 0.0027219301378680434im,0.0015512037853623508 - 0.022724926296232694im,0.019854350669049014 + 0.0020433994451300383im,-0.003551339961524409 + 0.017068561901514782im,-0.014135156767161062 - 0.005531901366146632im,0.007478384063701854 - 0.010843738387818137im,0.0071263958215239094 + 0.008889638031851362im,-0.009305585810744019 + 0.0031442615413370596im,0.000681702950876991 - 0.008412845320355107im,0.006190598197107229 + 0.003733713493470452im,-0.005379105649981245 + 0.003026950791353769im],Complex{Float64}[-4.8387735622072593e-14 - 4.071998081485528e-14im,-4.230839565694019e-13 - 2.6189596650869957e-13im,-3.3973007152248344e-12 - 1.4897618787691359e-12im,-2.5173916780737902e-11 - 7.149229885146233e-12im,-1.7259447220387145e-10 - 2.5175674018024192e-11im,-1.0962990057119443e-9 - 1.9673683456074828e-11im,-6.454309347468289e-9 + 6.715003988687346e-10im,-3.521487276373733e-8 + 7.859326678373458e-9im,-1.779610914993488e-7 + 6.081881080408569e-8im,-8.323736415592234e-7 + 3.8397456587549035e-7im,-3.6005161914359747e-6 + 2.0973915769076318e-6im,-1.4395240646545717e-5 + 1.0147063634294516e-5im,-5.319704847892867e-5 + 4.393362944036802e-5im,-0.00018191174704171068 + 0.0001709442450787586im,-0.0005773603176132271 + 0.000598035217970257im,-0.0017109546437779643 + 0.0018770891140273934im,-0.004783597470394279 + 0.005262467652486228im,-0.01283724437769671 + 0.01308623491396291im,-0.034015377605162496 + 0.028572925162380053im,-0.08660626968740466 + 0.053973986903251434im,0.6691598104203897 + 0.08623908572848926im,0.1452794264517145 + 0.11223212655111685im,0.020577959188579596 + 0.11036745559154632im,-0.05250009218264828 + 0.0661239165966846im,-0.0684520437673922 - 0.004536172566952253im,-0.02448767077258869 - 0.052310829226474974im,0.032741982094043186 - 0.037140996764535444im,0.039468169230482936 + 0.01666969859246884im,-0.005905706146079599 + 0.036777752221404426im,-0.03244856494262742 + 9.833178887472701e-5im,-0.0025659690983082816 - 0.028159041525335306im,0.02447798042990512 - 0.0026441340481144467im,0.0012010508904148605 + 0.021372174757058337im,-0.018540280327483467 - 0.0011309139190583135im,0.0038419093766019364 - 0.0156156499998411im,0.012301076216195472 + 0.006446272746877235im,-0.00844099975225217 + 0.008475314823997162im,-0.004276450979867765 - 0.009341997975022508im,0.008798991637435276 - 0.00013478458014303505im,-0.003289447005871243 + 0.00675761448215497im,-0.00359525205938016 - 0.0052950644285032im]);
     (Complex{Float64}[-0.006010560931105717 - 8.099206058228727e-5im,-0.013051842663096367 + 0.005072997552494464im,-0.020767358890538802 + 0.019682077819744254im,-0.020350238867813317 + 0.04582032165708542im,-0.000840462988510415 + 0.07261675027853165im,0.0332227865523085 + 0.0738741967602914im,0.0470596175620651 + 0.03318306101683247im,0.005088105121148251 - 0.017353169428847258im,-0.060140832621221406 - 0.01670211006014415im,-0.055685193586157665 + 0.02554150180991539im,0.023804475095123116 + 0.013091631772648592im,0.0453157515552314 - 0.05506075457887237im,-0.020338926278687768 - 0.03052938026745089im,-0.012328935826891372 + 0.06821949245308044im,0.04492219448720636 + 0.023343960299165443im,-0.03191179764206049 - 0.0689871518398665im,-0.05471667415446181 + 0.02280234814239691im,0.09181914286137305 + 0.03476355833284616im,-0.004636062285236399 - 0.08272409269029607im,-0.1341517019976866 + 0.09574737472886005im,0.018429462976150356 + 0.1949711893094354im,-0.08481800073867386 - 0.059695974371485376im,0.08448649365704856 - 0.009209773344884764im,-0.05217040384400483 + 0.061484496500109835im,-0.006608463758114336 - 0.07761527344078166im,0.05553541227538794 + 0.046969102534750236im,-0.06416627406970883 + 0.0029610063048838096im,0.03954094751201312 - 0.03518867518285888im,-0.011072200221512295 + 0.038811329542635824im,-0.002355330370127763 - 0.02929563602440653im,0.004161400259820308 + 0.02452031452178002im,-0.0074709247440437315 - 0.027954687340761748im,0.018987787629378226 + 0.03116034013192417im,-0.034589143849163034 - 0.025672160148372945im,0.04556074306767523 + 0.010724912328657797im,-0.046421786079989896 + 0.007571537903612689im,0.038012190635015576 - 0.021706878988059335im,-0.025573449862868452 + 0.02742230841587303im,0.014938022253327127 - 0.024982887262599555im,-0.009718974909464856 + 0.017681455346822823im,0.010542373181428552 - 0.00946559277680657im],Complex{Float64}[0.003400245486727625 - 0.007511015669592902im,-0.00014577102890233216 - 0.01880254929969861im,-0.016519694225866143 - 0.03381228588555419im,-0.051602445318170785 - 0.03906333615373821im,-0.0916754662562709 - 0.013110037809624893im,-0.09439428997876526 + 0.04462264490477062im,-0.02741888522036609 + 0.0804700768960561im,0.05735924933792379 + 0.025325077733909435im,0.04453304748017203 - 0.08003530300305259im,-0.05835900729439083 - 0.07499331179497443im,-0.05888898288726756 + 0.058113453537780906im,0.0779887919076034 + 0.07409759335885852im,0.06478071717257719 - 0.07632830237178781im,-0.10862722399706422 - 0.04671836917057687im,-0.02586258316536636 + 0.12043093492051966im,0.13954005316683837 - 0.0273164392331431im,-0.0838831737033017 - 0.1348238545962945im,-0.09902194325164608 + 0.1678178866560469im,0.2527365985045 + 0.011646944258297045im,-0.1758171289691821 - 0.40852753667861696im,0.0 + 0.0im,-0.1327707583536467 + 0.1665524988271359im,-0.03608446949387168 - 0.17523694940330375im,0.13043142758152051 + 0.08702717247010915im,-0.14090497939678473 + 0.018737477733484557im,0.0908647152090503 - 0.09458457046104024im,-0.01679594283094598 + 0.12045974026331244im,-0.047594203355206435 - 0.10199693258325562im,0.08472407872290133 + 0.06026939256557984im,-0.09529122017179062 - 0.016049263002305574im,0.08925099541629826 - 0.020236146476579484im,-0.0753159312460544 + 0.04772498177693122im,0.05699320160953973 - 0.0685714288063339im,-0.03494710178588556 + 0.08321095784105365im,0.010630204364646864 - 0.09027425863546125im,0.012568218449376629 + 0.08900847412571977im,-0.03074588779217126 - 0.08100679270024726im,0.04149616041771441 + 0.06991784952489172im,-0.044828289530455145 - 0.05982778583522361im,0.042675933856008486 + 0.05366676772796644im,-0.03765589528315129 - 0.052487346671997455im],Complex{Float64}[-0.0009186353611679662 - 0.01770123238482186im,-0.016959020530409118 - 0.03740406789764434im,-0.0599505640786381 - 0.05805622216894309im,-0.1344893692372033 - 0.05525210111959452im,-0.2093027749008774 - 0.0005548348565847305im,-0.2131251042086431 + 0.09077348355257847im,-0.10355718051202827 + 0.12407161468960597im,0.03349124509992406 + 0.008093498213504576im,0.04045219804815411 - 0.16644607779415307im,-0.05720602125457568 - 0.1563190338979058im,-0.020643433022335473 + 0.052284756866292185im,0.14536733702065063 + 0.1221366754550719im,0.07605698181778453 - 0.030986213874861324im,-0.17441057514137137 - 0.02649239519446253im,-0.07209046943730052 + 0.0922502093114227im,0.1651050033694482 - 0.08149244616313518im,-0.024692674600178544 - 0.12369120995514969im,-0.086003952508595 + 0.20809993506041094im,0.14411938865170457 + 0.019337232739630537im,-0.10404575751754877 - 0.265376728428818im,0.8313649528991015 + 0.2770652647011028im,-0.18399347965235652 + 0.29797382316815707im,-0.09804705507448168 - 0.20493430452018024im,0.14743962622809376 + 0.03984933681806125im,-0.09257061273868299 + 0.037065164855240675im,0.057633260793869684 - 0.048161929257768216im,-0.047393247774767396 + 0.06982353459682639im,0.008540015465826228 - 0.1059435599075758im,0.06511898173485135 + 0.10558035432931263im,-0.1235757095904637 - 0.04643660639079983im,0.12364532859213535 - 0.03638696209117433im,-0.07172191233460602 + 0.09031730512656982im,0.009803463673061952 - 0.09265513508105916im,0.024426457601701524 + 0.06032841727155126im,-0.022125330315602373 - 0.026919724024059406im,-0.00022570298498006497 + 0.015882610317076305im,0.019284989672185286 - 0.02972983257190519im,-0.02060144412329091 + 0.055709862696594364im,0.0034502925455790583 - 0.07784906497310044im,0.02333062134240389 + 0.08602932400641243im,-0.04850398311454398 - 0.0786803078946175im])]

for i in eachindex(E)
    ϕ = lhelmfs(complex.(x,y),0.0,E[i];derivs=true)
    for j in 1:3
        @test norm(ϕ[j]-Φ[i][j],Inf) < 100eps()
    end
end


x = collect(-2:1.0:2)
y = collect(-2:1.0:2)
E = collect(-10:10.0:10)
z = x.+im*y'

𝕽 = Array{Matrix{Complex{Float64}}}(size(E))
#=
xBF = collect(-2:BigFloat(1.0):2)
yBF = collect(-2:BigFloat(1.0):2)
EBF = collect(-10:BigFloat(10.0):10)
zBF = xBF.+im*yBF'
[𝕽[i] = convert(Matrix{Complex{Float64}},lhelm_riemann(zBF,0zBF,EBF[i])) for i in eachindex(E)]
=#

𝕽[1] = Complex{Float64}[1.000000000000000000000000000000000000000000000000000000000000000000000000000000 + 1.559527688081715042215407854014417808812149076921151555306529585730657664096213e+03im 1.272006459007845559941221987327284931812837881102053926735813512404190170845331e+02 + 1.682675278677127413254962649769713242417117174802738568981084683205586894460463e+02im 9.036436716008059715046661857663038256082130349900884351522974053732106636088462e+01 - 6.908934844075555700309081490240319656892800291549025108018962776134873442529942e-77im 9.176017961670177477264995768865600275565644353378550340037085254575791729298424e+01 - 1.210135728222690330301999435848746703408752580450473378671611367276772230573123e+02im 1.000000000000000000000000000000000000000000000000000000000000000000000000000000 - 6.694220661350562768705955293791082897961252328946944830822527565529059646157028e+02im
                  -1.469797198354392957674307303368354243224969726253943319448322854626834039706531e+02 + 1.973062931139190610232409737824472324299959635005257759264430472835778719608694e+02im 1.000000000000000000000000000000000000000000000000000000000000000000000000000000 + 1.779549957127476842553971431330336947114533379129140713304465139221826076496712e+01im 5.571230536887944565938012219540339054165948043656580809163982321476259622717075 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im 1.000000000000000000000000000000000000000000000000000000000000000000000000000000 - 1.44387270429883337378563234716649680554593134300381556054938062365753083788965e+01im -7.54902295815984987507699797274028219584300038313104311343694574292079612857124e+01 - 1.019869727754646650010266396365370959445733384417472415124926099056106150476154e+02im
                  -1.180278957488324212994966225306292525543123583615742679698057861627287320792801e+02 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im -3.941448339192336808620796267390290024317406908924433550372292127439443513482247 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im 1.000000000000000000000000000000000000000000000000000000000000000000000000000000 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im -3.217748338718791625938231255779184786419545953889291497853425094213522810467873 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im -6.514136573623292627177857640703331299885272625312977908570241225088221548994035e+01 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im
                  -1.469797198354392957674307303368354243224969726253943319448322854626834039706531e+02 - 1.973062931139190610232409737824472324299959635005257759264430472835778719608694e+02im 1.000000000000000000000000000000000000000000000000000000000000000000000000000000 - 1.779549957127476842553971431330336947114533379129140713304465139221826076496712e+01im 5.571230536887944565938012219540339054165948043656580809163982321476259622717075 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im 1.000000000000000000000000000000000000000000000000000000000000000000000000000000 + 1.44387270429883337378563234716649680554593134300381556054938062365753083788965e+01im -7.54902295815984987507699797274028219584300038313104311343694574292079612857124e+01 + 1.019869727754646650010266396365370959445733384417472415124926099056106150476154e+02im
                  1.000000000000000000000000000000000000000000000000000000000000000000000000000000 - 1.559527688081715042215407854014417808812149076921151555306529585730657664096213e+03im 1.272006459007845559941221987327284931812837881102053926735813512404190170845331e+02 - 1.682675278677127413254962649769713242417117174802738568981084683205586894460463e+02im 9.036436716008059715046661857663038256082130349900884351522974053732106636088462e+01 + 6.908934844075555700309081490240319656892800291549025108018962776134873442529942e-77im 9.176017961670177477264995768865600275565644353378550340037085254575791729298424e+01 + 1.210135728222690330301999435848746703408752580450473378671611367276772230573123e+02im 1.000000000000000000000000000000000000000000000000000000000000000000000000000000 + 6.694220661350562768705955293791082897961252328946944830822527565529059646157028e+02im]

𝕽[2] = Complex{Float64}[1.000000000000000000000000000000000000000000000000000000000000000000000000000000 + 3.073654314444833662867964848381522401755999147405737616093502014377717524232445im 1.418854048232790568746896929046516198920607600727090496402599277712711679157509 + 5.584720643103874249958625720620215985608101343027873285367990369502822388766784e-01im 9.86115933376187458582138300031294561693601179244344917413538404541762709179762e-01 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im 6.658034104345442152153485269277412323895019441304504162145078911208223274348069e-01 + 4.455954527539410463795352974296783568139974078260661117139894785055702300869126e-01im 1.000000000000000000000000000000000000000000000000000000000000000000000000000000 + 1.261833533873199247338473214568452448691622630393699188159856807676191643984414im
                  2.429202859589911244935746817936526572228570754385794002264369738432396854452519e-03 + 1.330094396187213451673419004242751297903695238994152274663647507015423470860724im 1.000000000000000000000000000000000000000000000000000000000000000000000000000000 + 2.642185870934118886976721327803798567540028959270961614088944223360039094659795e-01im 9.997829872884857964621492312570073605746725318551060411234728989496103839209607e-01 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im 1.000000000000000000000000000000000000000000000000000000000000000000000000000000 + 2.364325202385329331629421718228186720109686567927908446539003997915883387187256e-01im 1.557530911624388325050314290856466126631569682759095020603294323450132760986883 + 7.433745488325177667337523878086215021754262436787933608043924312668436813158496e-01im
                  -2.618625282633160276679611137420980507166095431137950475419951349739603957834599e-01 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im 8.712629502825992863524248855440375903487349752444898365486026161935750230979242e-01 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im 1.000000000000000000000000000000000000000000000000000000000000000000000000000000 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im 1.12135789696223673945980223744967686852199385851859231455050502993940831780726 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im 1.786850316788085522466271467711976505960963653738283316835888165034510428350373 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im
                  2.429202859589911244935746817936526572228570754385794002264369738432396854452519e-03 - 1.330094396187213451673419004242751297903695238994152274663647507015423470860724im 1.000000000000000000000000000000000000000000000000000000000000000000000000000000 - 2.642185870934118886976721327803798567540028959270961614088944223360039094659795e-01im 9.997829872884857964621492312570073605746725318551060411234728989496103839209607e-01 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im 1.000000000000000000000000000000000000000000000000000000000000000000000000000000 - 2.364325202385329331629421718228186720109686567927908446539003997915883387187256e-01im 1.557530911624388325050314290856466126631569682759095020603294323450132760986883 - 7.433745488325177667337523878086215021754262436787933608043924312668436813158496e-01im
                  1.000000000000000000000000000000000000000000000000000000000000000000000000000000 - 3.073654314444833662867964848381522401755999147405737616093502014377717524232445im 1.418854048232790568746896929046516198920607600727090496402599277712711679157509 - 5.584720643103874249958625720620215985608101343027873285367990369502822388766784e-01im 9.86115933376187458582138300031294561693601179244344917413538404541762709179762e-01 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im 6.658034104345442152153485269277412323895019441304504162145078911208223274348069e-01 - 4.455954527539410463795352974296783568139974078260661117139894785055702300869126e-01im 1.000000000000000000000000000000000000000000000000000000000000000000000000000000 - 1.261833533873199247338473214568452448691622630393699188159856807676191643984414im]

𝕽[3] = Complex{Float64}[9.999999999999999999999999999999999999999999999999999999999999999999999999980655e-01 - 9.517238569709800023874567389955156162674768308768388424203108533002058545384214e-01im 5.790284158160320220961853532056169599327554024881639356372427239870912934499176e-01 - 5.612954455786239705384195290591773867563261300157814191503430346838782754008468e-01im 2.288009162095741154905408387174082632213159811870103137593180613801942273846618e-01 - 6.908934844075555700309081490240319656892800291549025108018962776134873442529942e-77im 5.758238875031047816496313742425357945880684197453251688931294557790261197062539e-01 + 5.655681499958602911338248343432856072159087736728997748091607256279651737247645e-01im 1.000000000000000000000000000000000000000000000000000000000000000000000000002211 + 1.17264010864624459379346662801933260330527746869623999206548531289553809041883im
                  1.428252665025167288262470244662553434974457923630899075608144834861194381696167 - 5.710035533668897176832936595500712466326105648411987674775264464815925089277165e-01im 1.000000000000000000000000000000000000000000000000000000000000000000000000000000 - 1.350772297697414442907732644136038422100599886949192391697172847498034382760828im -3.101557626802583102305642592816542637714672944999185491761153865128874251783409e-01 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im 1.000000000000000000000000000000000000000000000000000000000000000000000000000000 + 1.300933735900403336184611180589715479538621945086370831744859018006213526172839im 1.433455011883104556255954047231397588180361364352305890029660629253820826059144 + 5.77940015844139408341272062975196784240481819136407853372880839005094434745663e-01im
                  1.849707795343286952161135478581626753609490258919800706080985086980418367503952 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im 2.286763645275007880682499244638978373195219760814932051170388229980619041872889 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im 1.000000000000000000000000000000000000000000000000000000000000000000000000000000 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im 2.330517058931000757981322437829390876495583273960066083365299569340764070239034 - 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im 1.721795016851737660005610577941552186204948415952999743212144627194238498555157 - 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im
                  1.428252665025167288262470244662553434974457923630899075608144834861194381696167 + 5.710035533668897176832936595500712466326105648411987674775264464815925089277165e-01im 1.000000000000000000000000000000000000000000000000000000000000000000000000000000 + 1.350772297697414442907732644136038422100599886949192391697172847498034382760828im -3.101557626802583102305642592816542637714672944999185491761153865128874251783409e-01 + 0.000000000000000000000000000000000000000000000000000000000000000000000000000000im 1.000000000000000000000000000000000000000000000000000000000000000000000000000000 - 1.300933735900403336184611180589715479538621945086370831744859018006213526172839im 1.433455011883104556255954047231397588180361364352305890029660629253820826059144 - 5.77940015844139408341272062975196784240481819136407853372880839005094434745663e-01im
                  9.999999999999999999999999999999999999999999999999999999999999999999999999980655e-01 + 9.517238569709800023874567389955156162674768308768388424203108533002058545384214e-01im 5.790284158160320220961853532056169599327554024881639356372427239870912934499176e-01 + 5.612954455786239705384195290591773867563261300157814191503430346838782754008468e-01im 2.288009162095741154905408387174082632213159811870103137593180613801942273846618e-01 + 6.908934844075555700309081490240319656892800291549025108018962776134873442529942e-77im 5.758238875031047816496313742425357945880684197453251688931294557790261197062539e-01 - 5.655681499958602911338248343432856072159087736728997748091607256279651737247645e-01im 1.000000000000000000000000000000000000000000000000000000000000000000000000002211 - 1.17264010864624459379346662801933260330527746869623999206548531289553809041883im]

for i in eachindex(E)
    ℜ = lhelm_riemann(z,0z,E[i])
    @test norm(ℜ-𝕽[i],Inf) < 2500eps()
end
